home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 516 / librarys / header.s < prev    next >
Text File  |  1991-09-22  |  1KB  |  27 lines

  1. ;************************************************************************
  2. ;* Header-Library, Programmrumpf                    *
  3. ;* ©1989 by Σ-soft, written by Markus Fritze           18.06.1988 01:30 *
  4. ;************************************************************************
  5.       movea.l   4(sp),a6        ;Basepageadresse holen
  6.       movea.w   #$100+$400,a5    ;Größe der Basepage + Stackgröße (1k)
  7.       adda.l    12(a6),a5        ;+ Größe des TEXT-Segments
  8.       adda.l    20(a6),a5        ;+ Größe des DATA-Segments
  9.       adda.l    28(a6),a5        ;+ Größe des BSS-Segments
  10.       move.l    a5,d1        ;= Gesamtlänge des Programms
  11.       and.w     #$FFFE,d1        ;Länge nun gerade
  12.       add.l     a6,d1        ;+ Programmstart (Basepageadresse)
  13.       move.l    d1,sp        ;Stack endet dort
  14.       move.l    a5,-(sp)        ;Programmlänge
  15.       move.l    a6,-(sp)        ;Adresse der Basepage
  16.       move.l    #$4A0000,-(sp)    ;Funktionsnummer + Dummyword (0)
  17.       trap        #1            ;Mshrink(0,Basepageadr,Prglänge)
  18.       lea        12(sp),sp        ;Nur noch den Stack korrigieren
  19. ;Das war schon alles. In A6 befindet sich noch die Basepageadresse und in a5
  20. ;liegt die totale Programmlänge (TRAP #1 zerstört D0-D2 und A0-A2!)
  21.  
  22. ;Hier kann nun das eigene Programm liegen
  23.  
  24.       clr.w     -(sp)
  25.       trap        #1            ;Pterm ausführen => Programmende
  26.  
  27.